package com.web.music.model.uml;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;

public class Person {

	/**
 */
private List<MusicBand> musicBands;

/**
 * Getter of the property <tt>musicBands</tt>
 *
 * @return Returns the musicBands.
 *
 */
public List<MusicBand> getMusicBands()
{
	return musicBands;
}

/**
 * Returns the element at the specified position in this list.
 *
 * @param index index of element to return.
 * @return the element at the specified position in this list.
 * @see	java.util.List#get(int)
 *
 */
public MusicBand getMusicBands(int i){
	return (MusicBand) musicBands.get(i);
}

/**
 * Returns an iterator over the elements in this list in proper sequence.
 *
 * @return an iterator over the elements in this list in proper sequence.
 * @see java.util.List#iterator()
 *
 */
public Iterator<MusicBand> musicBandsIterator(){
	return musicBands.iterator();
}

/**
 * Returns <tt>true</tt> if this list contains no elements.
 * 
 * @return <tt>true</tt> if this list contains no elements.
 * @see java.util.List#isEmpty()
 *
 */
public boolean isMusicBandsEmpty(){
	return musicBands.isEmpty();
}

/**
 * Returns <tt>true</tt> if this list contains the specified element.
 *
 * @param element element whose presence in this list is to be tested.
 * @return <tt>true</tt> if this list contains the specified element.
 * @see java.util.List#contains(Object)
 * 
 */
public boolean containsMusicBands(MusicBand MusicBand){
	return musicBands.contains(MusicBand);
}

/**
 * Returns <tt>true</tt> if this list contains all of the elements of the
 * specified collection.
 *
 * @param elements collection to be checked for containment in this list.
 * @return <tt>true</tt> if this list contains all of the elements of the
 * 	       specified collection.
 * @see java.util.List#containsAll(Collection)
 *
 */
public boolean containsAllMusicBands(Collection<? extends MusicBand> musicBands){
	return this.musicBands.containsAll(musicBands);
}

/**
 * Returns the number of elements in this list.
 *
 * @return the number of elements in this list.
 * @see java.util.List#size()
 *
 */
public int musicBandsSize(){
	return musicBands.size();
}

/**
 * Returns an array containing all of the elements in this list in proper
 * sequence.
 *
 * @return an array containing all of the elements in this list in proper
 *	       sequence.
 * @see java.util.List#toArray()
 * 
 */
public MusicBand[] musicBandsToArray(){
	return musicBands.toArray(new MusicBand[musicBands.size()]);
}

/**
 * Inserts the specified element at the specified position in this list
 * (optional operation)
 *
 * @param index index at which the specified element is to be inserted.
 * @param element element to be inserted.
 * @see java.util.List#add(int, Object)
 *
 */
public void addMusicBands(int index, MusicBand MusicBand){
	musicBands.add(index, MusicBand);
}

/**
 * Appends the specified element to the end of this list (optional
 * operation).
 *
 * @param element element to be appended to this list.
 * @return <tt>true</tt> (as per the general contract of the
 *            <tt>Collection.add</tt> method).
 * @see java.util.List#add(Object)
 *
 */
public boolean addMusicBands(MusicBand MusicBand){
	return musicBands.add(MusicBand);
}

/**
 * Removes the element at the specified position in this list (optional
 * operation).
 *
 * @param index the index of the element to removed.
 * @return the element previously at the specified position.
 * @see java.util.List#remove(int)
 * 
 */
public Object removeMusicBands(int index){
	return musicBands.remove(index);
}

/**
 * Removes the first occurrence in this list of the specified element 
 * (optional operation).
 *
 * @param element element to be removed from this list, if present.
 * @return <tt>true</tt> if this list contained the specified element.
 * @see java.util.List#remove(Object)
 *
 */
public boolean removeMusicBands(MusicBand MusicBand){
	return musicBands.remove(MusicBand);
}

/**
 * Removes all of the elements from this list (optional operation).
 *
 * @see java.util.List#clear()
 *
 */
public void clearMusicBands(){
	musicBands.clear();
}

/**
 * Setter of the property <tt>musicBands</tt>
 *
 * @param musicBands the musicBands to set.
 *
 */
public void setMusicBands(List<MusicBand> musicBands){
	this.musicBands = musicBands;
}

/*
 * (non-javadoc)
 */
private String id;
 
/**
 * Getter of the property <tt>id</tt>
 *
 * @return Returns the id.
 * 
 */
public String getId()
{
	return id;
}

/**
 * Setter of the property <tt>id</tt>
 *
 * @param id The id to set.
 *
 */
public void setId(String id ){
	this.id = id;
}

/*
 * (non-javadoc)
 */
private String name;
 
/**
 * Getter of the property <tt>name</tt>
 *
 * @return Returns the name.
 * 
 */
public String getName()
{
	return name;
}

/**
 * Setter of the property <tt>name</tt>
 *
 * @param name The name to set.
 *
 */
public void setName(String name ){
	this.name = name;
}

/*
 * (non-javadoc)
 */
private String surname;
 
/**
 * Getter of the property <tt>surname</tt>
 *
 * @return Returns the surname.
 * 
 */
public String getSurname()
{
	return surname;
}

/**
 * Setter of the property <tt>surname</tt>
 *
 * @param surname The surname to set.
 *
 */
public void setSurname(String surname ){
	this.surname = surname;
}

/*
 * (non-javadoc)
 */
private Singer singerInfo;

	public Singer getSingerInfo() {
		return singerInfo;
	}

	public void setSingerInfo(Singer singerInfo) {
		this.singerInfo = singerInfo;
	}

}

//public List<MusicBand> getMusicBands() {
//		return musicBands;
//	}
//public void setMusicBands(List<MusicBand> musicBands) {
//		this.musicBands = musicBands;
//	}